// 用户模型
const { User } = require('../../../models/user');
// 统一数据返回类
const { DataReturn } = require('../../../common/returnclass');

/**
 * @api {Get} /users 查询用户
 * @apiGroup Admin-Users
 *
 * @apiParam {String} [query] 搜索字段：用户名(非必填)
 * @apiParam {Number} pagenum 数量
 * @apiParam {Number} pagesize 页数 
 * 
 * @apiSuccess {ObjectId} _id 用户id
 * @apiSuccess {String} username 用户名
 * @apiSuccess {Number} mobile 手机号
 * @apiSuccess {String} avatar 用户头像
 * @apiSuccess {String} role 角色
 * @apiSuccess {Number} sex 性别 0 保密 1 男 2 女
 * @apiSuccess {Boolean} state 用户状态
 * @apiSuccess {String} [receiving_address] 收货地址，普通角色需要填写
 */
module.exports = async (req, res) => {
	// 搜索名称 当前页 当前条数
	let { query, pagenum, pagesize } = req.query;
	pagenum = parseInt(pagenum);
	pagesize = parseInt(pagesize);
	console.log(req.query, pagesize*(pagenum-1));
	let users;
	if (query) {
		// 根据用户名模糊查询
		users = await User.find({username: { $regex: query,$options:"$i" }}).select('-password').skip(pagesize*(pagenum-1)).limit(pagesize);
	} else {
		// 查询所有用户信息
		users = await User.find().select('-password').skip(pagesize*(pagenum-1)).limit(pagesize);
	}
	
	if (!users) return DataReturn.getData(res, 200, users, '暂无数据');
	// 响应
	DataReturn.getData(res, 200, { data:users, total: await User.find({username: { $regex: query,$options:"$i" }}).countDocuments() }, '查询成功')
};